package com.qiaoba.api.job.service;

import com.qiaoba.api.job.entity.dto.SysJobDTO;
import com.qiaoba.api.job.entity.vo.SysJobVO;

/**
 * 定时任务对外暴露接口
 *
 * @author ailanyin
 * @date 2023-09-03 21:46:47
 */
public interface SysJobApiService {

    /**
     * 新增定时任务
     *
     * @param dto dto
     * @return 结果
     * @throws Exception Exception
     */
    int insert(SysJobDTO dto) throws Exception;

    /**
     * 更改任务状态
     *
     * @param jobId  任务ID
     * @param status 状态（0暂停 1运行）
     * @return 结果
     * @throws Exception Exception
     */
    int updateStatus(String jobId, String status) throws Exception;

    /**
     * 删除定时任务
     *
     * @param jobId 任务ID
     * @return 结果
     * @throws Exception Exception
     */
    int deleteById(String jobId) throws Exception;


    /**
     * 查询定时任务
     *
     * @param jobId     任务ID
     * @param allowNull 是否允许空
     * @return 定时任务
     */
    SysJobVO selectVoById(String jobId, boolean allowNull);

    /**
     * 立即运行任务
     *
     * @param jobId 任务ID
     * @return 结果
     */
    int run(String jobId);
}
